Exception Handling হলো Apex প্রোগ্রামিংয়ের একটি প্রক্রিয়া, যার মাধ্যমে কোডে চলাকালীন সময়ে কোনো সমস্যা বা ত্রুটি ঘটলে তা সনাক্ত করা এবং সেই অনুযায়ী পদক্ষেপ নেওয়া হয়। Exception Handling প্রোগ্রামের স্থায়িত্ব ও নির্ভরযোগ্যতা বাড়ায় এবং ব্যবহারকারীদের জন্য উন্নত অভিজ্ঞতা প্রদান করে।
Apex কোড চালানোর সময় যে কোনো অনাকাঙ্ক্ষিত ত্রুটি বা সমস্যা ঘটলে Salesforce Exception তৈরি করে। Exception Handling এর মাধ্যমে Apex কোডে ত্রুটির অবস্থান সনাক্ত করে try-catch-finally
ব্লকের মাধ্যমে সঠিক পদক্ষেপ গ্রহণ করা যায়। এতে করে অ্যাপ্লিকেশন ত্রুটির সময়ও সঠিকভাবে কাজ করতে পারে এবং কোডের কার্যকারিতা বজায় থাকে।
try
ব্লকের মধ্যে কোড রাখা হয় যেখানে Exception ঘটতে পারে। যদি কোনো Exception ঘটে, তবে সেটি catch
ব্লকে পাঠানো হয়।catch
ব্লকের মাধ্যমে Exception সনাক্ত করা হয় এবং ত্রুটি হ্যান্ডলিংয়ের জন্য সঠিক পদক্ষেপ নেওয়া হয়।finally
ব্লক সবসময় চালানো হয়, Exception ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কাজের জন্য ব্যবহৃত হয়।try {
// Potential exception-throwing code
Account acc = new Account(Name = '');
insert acc;
System.debug('Account inserted successfully');
} catch (DmlException e) {
System.debug('DML Exception: ' + e.getMessage());
} catch (Exception e) {
System.debug('General Exception: ' + e.getMessage());
} finally {
System.debug('Operation completed');
}
Account
রেকর্ড ইনসার্ট করা হচ্ছে।DmlException
ব্লক কাজ করবে; অন্য Exception হলে সাধারণ Exception
ব্লক কাজ করবে।"Operation completed"
মেসেজ প্রিন্ট করবে।Apex-এ বেশ কয়েকটি বিল্ট-ইন Exception রয়েছে, যা বিভিন্ন ধরণের ত্রুটির জন্য ব্যবহৃত হয়:
DML অপারেশনের সময় যদি ত্রুটি ঘটে, তাহলে DmlException
তৈরি হয়। নিচে DmlException এর একটি উদাহরণ দেয়া হলো:
try {
Account acc = new Account(Name = '');
insert acc;
} catch (DmlException e) {
System.debug('DML Error: ' + e.getMessage());
}
Name
ফিল্ড ফাঁকা থাকার কারণে DML Exception তৈরি হবে এবং catch
ব্লকে e.getMessage()
এর মাধ্যমে ত্রুটির বার্তা প্রিন্ট করবে।Apex-এ Custom Exception তৈরি করে নির্দিষ্ট ত্রুটি হ্যান্ডলিং করা যায়, যা অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করে। Custom Exception তৈরি করতে একটি ক্লাস তৈরি করে extends Exception
ব্যবহার করা হয়।
public class MyCustomException extends Exception {}
try {
throw new MyCustomException('Custom exception occurred');
} catch (MyCustomException e) {
System.debug('Custom Exception: ' + e.getMessage());
}
MyCustomException
নামে একটি কাস্টম Exception তৈরি করা হয়েছে এবং নির্দিষ্ট ত্রুটি মেসেজ প্রিন্ট করা হয়েছে।try {
Integer x = 5 / 0;
} catch (ArithmeticException e) {
System.debug('Error Message: ' + e.getMessage());
System.debug('Exception Type: ' + e.getTypeName());
System.debug('Line Number: ' + e.getLineNumber());
}
Exception
এর পরিবর্তে নির্দিষ্ট Exception যেমন DmlException
, QueryException
হ্যান্ডল করা উচিত।finally
ব্লক ব্যবহার করা উচিত।getMessage()
, getTypeName()
ব্যবহার করে Exception সম্পর্কে বিস্তারিত তথ্য পাওয়া যায়।Apex-এ Exception Handling ব্যবহার করে ডেটা ম্যানিপুলেশন ও অন্যান্য প্রক্রিয়াকরণের সময় ত্রুটি এড়ানো এবং সঠিক পদক্ষেপ নেওয়া সম্ভব, যা অ্যাপ্লিকেশনের স্থায়িত্ব ও ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।
Exception Handling হলো এমন একটি প্রক্রিয়া যা প্রোগ্রামিং চলাকালীন ত্রুটি বা অপ্রত্যাশিত পরিস্থিতি সনাক্ত করে এবং সেই ত্রুটির জন্য একটি নির্দিষ্ট সমাধান প্রদান করে। Exception Handling-এর প্রধান উদ্দেশ্য হলো প্রোগ্রাম চলাকালীন ত্রুটি ঘটলেও প্রোগ্রাম যেন ধ্বংস না হয় এবং নির্দিষ্ট পদ্ধতিতে কার্যক্রম সম্পন্ন করতে পারে।
Apex-এ Exception Handling ত্রুটি সনাক্ত করে এবং তা যথাযথভাবে পরিচালনা করতে try, catch, finally ব্লক ব্যবহার করে। এটি প্রোগ্রামিংকে আরও নির্ভুল ও স্থিতিশীল করে তোলে, কারণ Exception Handling এর মাধ্যমে প্রোগ্রামের ত্রুটি সমাধান বা নির্দেশনা দেওয়া সম্ভব হয়।
try ব্লক: প্রোগ্রামের সেই অংশ যেখানে ত্রুটি ঘটার সম্ভাবনা রয়েছে, তাকে try
ব্লকের মধ্যে রাখা হয়। যখনই এই অংশে ত্রুটি দেখা দেয়, তখন Exception Handling এর প্রক্রিয়া শুরু হয়।
catch ব্লক: catch
ব্লক ব্যবহার করে ত্রুটির ধরন অনুযায়ী উপযুক্ত ব্যবস্থা নেওয়া যায়। ত্রুটি ঘটলে catch
ব্লক এক্সিকিউট হয় এবং ত্রুটি সমাধানের জন্য নির্দিষ্ট লজিক সম্পাদন করে।
finally ব্লক: finally
ব্লক এমন একটি অংশ, যা try
এবং catch
ব্লকের পরে অবশ্যই এক্সিকিউট হয়। এটি Exception ঘটুক বা না ঘটুক, সব ক্ষেত্রেই কার্যকর হয়। সাধারণত finally
ব্লক রিসোর্স রিলিজ বা ক্লিন-আপ কার্যক্রমের জন্য ব্যবহৃত হয়।
apex
Copy code
try {
// কোড যা ত্রুটি ঘটাতে পারে
} catch (ExceptionType e) {
// ত্রুটি সমাধানের জন্য লজিক
} finally {
// অতিরিক্ত কার্যক্রম, যা অবশ্যই কার্যকর হবে
}
NullPointerException
, DmlException
ইত্যাদি।getMessage()
বা getStackTraceString()
এর মাধ্যমে ত্রুটির বিবরণ দেখা যায়।নিচে একটি সাধারণ উদাহরণ দেয়া হলো যেখানে Division by Zero এর Exception Handling করা হয়েছে।
apex
Copy code
public class DivisionExample {
public void divideNumbers(Integer a, Integer b) {
try {
Integer result = a / b;
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('Cannot divide by zero: ' + e.getMessage());
} finally {
System.debug('Operation completed.');
}
}
}
try
ব্লকের মধ্যে a / b
অপারেশনটি রয়েছে, যা b
এর মান শূন্য হলে ত্রুটি সৃষ্টি করবে।catch
ব্লকে ArithmeticException
ধরার ব্যবস্থা করা হয়েছে এবং ত্রুটির একটি বার্তা প্রদর্শন করা হয়েছে।finally
ব্লকে একটি মেসেজ প্রিন্ট করা হয়েছে, যা Exception ঘটুক বা না ঘটুক সব অবস্থাতেই কার্যকর হবে।Apex এ কিছু সাধারণ Exception রয়েছে, যা প্রায়ই প্রোগ্রামিং চলাকালীন ঘটে। এর মধ্যে কয়েকটি হলো:
Exception Handling-এর মাধ্যমে প্রোগ্রামিংয়ে কিছু ব্যবহারিক সুবিধা পাওয়া যায়:
finally
ব্লক ব্যবহার করে অবশিষ্ট রিসোর্স যেমন ডেটাবেস কানেকশন বা ফাইল রিসোর্স বন্ধ করা যায়।নিচের উদাহরণে, একটি DML অপারেশনে Exception Handling দেখানো হয়েছে।
apex
Copy code
public class DmlExample {
public void createAccount(String name) {
try {
Account acc = new Account(Name = name);
insert acc;
} catch (DmlException e) {
System.debug('DML Error: ' + e.getMessage());
} finally {
System.debug('DML Operation Completed.');
}
}
}
insert
DML অপারেশনে Exception Handling করা হয়েছে। কোনো ত্রুটি ঘটলে catch
ব্লকে ত্রুটির বার্তা প্রিন্ট হবে, এবং finally
ব্লকে একটি মেসেজ প্রিন্ট হবে।Exception
না ধরে নির্দিষ্ট Exception টাইপ ধরার চেষ্টা করুন, যেমন DmlException
, NullPointerException
।finally
ব্লক ব্যবহার করুন: যেখানে সম্ভব, finally
ব্লক ব্যবহার করে রিসোর্স মুক্ত করুন।getMessage()
এবং getStackTraceString()
মেথড ব্যবহার করে ত্রুটির বিবরণ দেখান।try-catch
ব্লক বা nested exception এড়িয়ে চলুন।Exception Handling Apex প্রোগ্রামিং-এ একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা প্রোগ্রামকে ত্রুটি সহ্য করে চলমান রাখতে এবং ব্যবস্থাপনা কার্যক্রম উন্নত করতে সহায়ক।
Apex-এ Try-Catch-Finally ব্লক এবং Throw Statement Exception Handling এর একটি গুরুত্বপূর্ণ অংশ, যা ত্রুটি সনাক্ত ও সঠিকভাবে হ্যান্ডল করতে সহায়ক। Try-Catch-Finally ব্লক কোনো কোডে ত্রুটি ঘটলে তা হ্যান্ডল করে এবং Throw Statement ব্যবহার করে নির্দিষ্ট ত্রুটি তৈরি বা "থ্রো" করতে পারে।
Try-Catch-Finally ব্লক ত্রুটি হ্যান্ডল করার একটি স্ট্রাকচার, যা তিনটি অংশে বিভক্ত:
Try ব্লক: try
ব্লকের মধ্যে এমন কোড লেখা হয় যেখানে ত্রুটি ঘটতে পারে। Exception ঘটলে এটি catch
ব্লকে চলে যায়।
Catch ব্লক: catch
ব্লক Exception এর ধরন অনুযায়ী ত্রুটি সনাক্ত করে এবং তা হ্যান্ডল করে। এখানে নির্দিষ্ট Exception (যেমন DmlException
, NullPointerException
) উল্লেখ করা যায়।
Finally ব্লক: finally
ব্লক সবসময় চালিত হয়, Exception ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কাজের জন্য ব্যবহৃত হয়।
try {
// Potentially error-prone code
Integer result = 10 / 0; // Division by zero, causes ArithmeticException
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('ArithmeticException: ' + e.getMessage());
} catch (Exception e) {
System.debug('General Exception: ' + e.getMessage());
} finally {
System.debug('Operation completed.');
}
ArithmeticException
-এর ক্ষেত্রে প্রথম catch
ব্লক কাজ করবে। অন্য Exception হলে দ্বিতীয় catch
ব্লক কাজ করবে।"Operation completed."
মেসেজ প্রিন্ট করবে।Throw Statement এর মাধ্যমে নির্দিষ্ট Exception তৈরি করা হয় এবং ইচ্ছাকৃতভাবে Exception "থ্রো" করা হয়। এটি সাধারণত কাস্টম Exception তৈরি বা নির্দিষ্ট শর্ত পূরণ না হলে ত্রুটি সনাক্ত করতে ব্যবহৃত হয়। Throw Statement ব্যবহার করে Exception তৈরি করার জন্য throw
কিওয়ার্ড ব্যবহার করা হয়।
public void validateAge(Integer age) {
if (age < 18) {
throw new IllegalArgumentException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
age
১৮ এর কম হলে IllegalArgumentException
Exception থ্রো করা হয়েছে এবং কাস্টম বার্তা প্রদান করা হয়েছে।Throw Statement এর মাধ্যমে Exception তৈরি করার পর Try-Catch-Finally ব্লকে এটি হ্যান্ডল করা যেতে পারে।
try {
validateAge(15); // Throws IllegalArgumentException
} catch (IllegalArgumentException e) {
System.debug('Caught Exception: ' + e.getMessage());
} finally {
System.debug('Validation completed.');
}
validateAge(15)
কল করলে IllegalArgumentException
থ্রো হয়।IllegalArgumentException
Exception ধরে এবং বার্তা প্রদর্শন করে।"Validation completed."
প্রিন্ট করে।Apex এ কাস্টম Exception তৈরি করে নির্দিষ্ট পরিস্থিতিতে Exception থ্রো করা যায়। Custom Exception তৈরির জন্য নতুন একটি ক্লাস তৈরি করে extends Exception
ব্যবহার করা হয় এবং এরপর throw
ব্যবহার করে Exception তৈরি করা যায়।
// Custom Exception ক্লাস
public class AgeValidationException extends Exception {}
public void validateCustomAge(Integer age) {
if (age < 18) {
throw new AgeValidationException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
// Try-Catch ব্লক দিয়ে Custom Exception হ্যান্ডল করা
try {
validateCustomAge(15); // Throws AgeValidationException
} catch (AgeValidationException e) {
System.debug('Caught Custom Exception: ' + e.getMessage());
}
AgeValidationException
নামে নতুন Exception তৈরি করা হয়েছে।age
১৮ এর কম হয়, তবে AgeValidationException
Exception থ্রো করা হয়েছে।AgeValidationException
Exception সনাক্ত করে এবং বার্তা প্রিন্ট করে।DmlException
, NullPointerException
ধরলে ত্রুটি হ্যান্ডলিং আরও কার্যকর হয়।finally
ব্লক ব্যবহার করা উচিত।Exception Handling Apex এ কোডের স্থায়িত্ব ও কার্যকারিতা বৃদ্ধি করে এবং ত্রুটির সময় সঠিক পদক্ষেপ গ্রহণে সহায়ক।
Custom Exception হলো Apex প্রোগ্রামিং ভাষায় তৈরি একটি বিশেষ ধরনের Exception যা ব্যবহারকারীর নির্দিষ্ট চাহিদা ও শর্ত অনুসারে তৈরি করা হয়। সাধারণত প্রয়োজন অনুযায়ী Custom Exception তৈরি করা হয় যাতে Exception Handling আরও উন্নত হয় এবং কোডে ত্রুটি বুঝতে সহজ হয়। Custom Exception-এ নির্দিষ্ট বার্তা, কার্যক্রম এবং লজিক যুক্ত করা যায়, যা সাধারণ Exception থেকে আলাদা।
Apex-এ Custom Exception তৈরি করতে Exception
ক্লাসকে ইনহেরিট করে একটি নতুন ক্লাস তৈরি করতে হয়। Custom Exception-এর সাহায্যে নির্দিষ্ট পরিস্থিতিতে ত্রুটি নির্দেশ করা যায় এবং প্রয়োজনীয় তথ্য প্রদান করা যায়।
public class CustomExceptionName extends Exception {
// কনস্ট্রাক্টর
public CustomExceptionName(String message) {
super(message);
}
}
super()
ব্যবহার করে Exception
ক্লাসের কনস্ট্রাক্টরকে কল করে, যাতে একটি কাস্টম বার্তা যুক্ত করা যায়।নিচে একটি উদাহরণ দেয়া হলো যেখানে InsufficientBalanceException
নামের একটি Custom Exception তৈরি করা হয়েছে, যা ব্যাংকের অ্যাকাউন্টে পর্যাপ্ত ব্যালেন্স না থাকলে একটি ত্রুটি নির্দেশ করে।
public class InsufficientBalanceException extends Exception {
public InsufficientBalanceException(String message) {
super(message);
}
}
নিচের উদাহরণে, যদি অ্যাকাউন্টের ব্যালেন্স উত্তোলনের জন্য প্রয়োজনীয় ব্যালেন্সের চেয়ে কম থাকে, তাহলে InsufficientBalanceException
তৈরি করা হবে।
public class BankAccount {
public Double balance;
public BankAccount(Double initialBalance) {
this.balance = initialBalance;
}
public void withdraw(Double amount) {
if (amount > balance) {
throw new InsufficientBalanceException('Insufficient balance for withdrawal.');
} else {
balance -= amount;
System.debug('Withdrawal successful. Remaining balance: ' + balance);
}
}
}
try {
BankAccount account = new BankAccount(1000.0);
account.withdraw(1500.0); // এটি ত্রুটি সৃষ্টি করবে
} catch (InsufficientBalanceException e) {
System.debug('Error: ' + e.getMessage());
}
withdraw
মেথডে যদি প্রয়োজনীয় পরিমাণ ব্যালেন্স না থাকে, তাহলে InsufficientBalanceException
তৈরি হবে এবং একটি কাস্টম বার্তা প্রিন্ট হবে।Custom Exception ব্যবহার করার মাধ্যমে প্রোগ্রামে উন্নত Exception Handling এবং স্পষ্ট ত্রুটি নির্দেশনা দেওয়া যায়। এর কিছু গুরুত্বপূর্ণ ব্যবহারিক দিক হলো:
বিশেষ পরিস্থিতি হ্যান্ডল করা: Custom Exception ব্যবহার করে নির্দিষ্ট পরিস্থিতি অনুযায়ী ত্রুটি নির্দেশ করা যায়, যা সাধারণ Exception দিয়ে বোঝানো সম্ভব নয়।
সহজ ডিবাগিং: নির্দিষ্ট Custom Exception তৈরি করে কোডে কোন সমস্যা বা Exception ঘটছে তা দ্রুত বোঝা যায় এবং ডিবাগিং সহজ হয়।
অর্থপূর্ণ বার্তা প্রদান: Custom Exception ব্যবহার করে অর্থপূর্ণ ত্রুটি বার্তা প্রদান করা সম্ভব, যা Exception-এর উৎস এবং প্রাসঙ্গিকতা বুঝতে সহায়ক।
ব্যবহারকারী বান্ধব: Custom Exception ব্যবহার করে ব্যবহারকারীর জন্য আরো উপযোগী বার্তা এবং নির্দেশনা প্রদান করা যায়।
নিচে InvalidAgeException
নামে একটি Custom Exception তৈরি করা হয়েছে, যা শুধুমাত্র বয়স ১৮ বছরের কম হলে ত্রুটি নির্দেশ করবে।
public class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
public class Registration {
public void registerUser(Integer age) {
if (age < 18) {
throw new InvalidAgeException('Age must be 18 or older to register.');
} else {
System.debug('User registered successfully.');
}
}
}
try {
Registration reg = new Registration();
reg.registerUser(16); // এটি ত্রুটি তৈরি করবে
} catch (InvalidAgeException e) {
System.debug('Error: ' + e.getMessage());
}
registerUser
মেথডে InvalidAgeException
ব্যবহার করা হয়েছে। যদি বয়স ১৮ বছরের কম হয়, তাহলে Custom Exception তৈরি হবে এবং ব্যবহারকারীকে একটি নির্দিষ্ট বার্তা প্রদান করবে।সঠিক নামকরণ: Exception-এর জন্য অর্থবহ নামকরণ করুন যাতে Exception এর ধরন বোঝা যায়, যেমন InsufficientBalanceException
, InvalidAgeException
।
অর্থপূর্ণ বার্তা প্রদান: Custom Exception-এর কনস্ট্রাক্টরে অর্থপূর্ণ বার্তা দিন, যাতে ত্রুটি সহজে বোঝা যায়।
Exception Hierarchy তৈরি: বড় প্রজেক্টের ক্ষেত্রে Exception-গুলো একটি Parent Custom Exception থেকে ইনহেরিট করে Hierarchy তৈরি করতে পারেন, যেমন ApplicationException
।
Custom Exception-এর মাধ্যমে নির্দিষ্ট ত্রুটি পরিস্থিতি হ্যান্ডল করা যায় এবং প্রোগ্রামিংয়ের উন্নত ত্রুটি নির্দেশনা ও ডিবাগিং সুবিধা পাওয়া যায়। Custom Exception তৈরি করে Exception Handling আরও সুনির্দিষ্ট, ব্যবহারকারী-বান্ধব এবং সহজতর করা যায়, যা কোডিং প্রক্রিয়াকে উন্নত করে।
Exception Logging এবং Debugging Techniques Apex-এ কোডের ত্রুটি শনাক্ত ও নির্ধারণ করতে সাহায্য করে। Logging এবং Debugging-এর মাধ্যমে প্রোগ্রামের কাজের ধারা বোঝা যায় এবং সমস্যার উৎস ও সমাধানের জন্য প্রয়োজনীয় তথ্য পাওয়া যায়।
Exception Logging হলো Exception Handling-এর সময় ত্রুটি বা ব্যতিক্রমের তথ্য সংরক্ষণ করার প্রক্রিয়া। এটি প্রোগ্রাম চলাকালীন ত্রুটির বিস্তারিত তথ্য প্রদান করে, যা পরবর্তীতে সমস্যা সমাধানে সাহায্য করে। Apex-এ Exception Logging-এর জন্য সাধারণত System.debug()
এবং Custom Logging মেকানিজম ব্যবহার করা হয়।
নিচের উদাহরণে Exception Handling-এর মাধ্যমে Exception Logging করা হয়েছে।
public class ExceptionLoggerExample {
public void divideNumbers(Integer a, Integer b) {
try {
Integer result = a / b;
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('Error: Cannot divide by zero.');
System.debug('Exception Message: ' + e.getMessage());
System.debug('Stack Trace: ' + e.getStackTraceString());
}
}
}
getMessage()
এবং getStackTraceString()
মেথডের মাধ্যমে ত্রুটির বিবরণ ও Stack Trace প্রিন্ট করা হয়েছে।Apex-এ Custom Logging-এর মাধ্যমে Exception Logging আরও উন্নত করা যায়, যেখানে লগ রেকর্ড ডাটাবেজে সংরক্ষণ করা যায় অথবা ইমেল, External API কল ইত্যাদির মাধ্যমে লগ পাঠানো যায়।
নিচের উদাহরণে Log__c
নামে একটি Custom Object-এ লগ সংরক্ষণ করা হয়েছে।
public class CustomLogger {
public static void logException(Exception e) {
Log__c log = new Log__c();
log.Exception_Message__c = e.getMessage();
log.Stack_Trace__c = e.getStackTraceString();
log.Log_Time__c = DateTime.now();
insert log;
}
}
public class ExceptionExample {
public void riskyOperation() {
try {
// সম্ভাব্য ত্রুটিযুক্ত অপারেশন
Integer result = 10 / 0;
} catch (Exception e) {
CustomLogger.logException(e); // Custom Logger-এ লগ সংরক্ষণ
}
}
}
Log__c
নামে একটি Custom Object ব্যবহার করা হয়েছে।logException()
মেথডে Exception লগ করা হয়েছে, যা ডেটাবেজে সংরক্ষণ করা যায়।Debugging Techniques প্রোগ্রাম চলাকালীন ত্রুটি ও অপ্রত্যাশিত ফলাফল শনাক্ত ও সমাধানে সহায়ক। Apex-এ বেশ কিছু সাধারণ Debugging Techniques ব্যবহৃত হয়।
System.debug() Apex-এ সবচেয়ে সাধারণ ডিবাগিং টুল, যা কোডের বিভিন্ন স্থানে ভেরিয়েবল বা লজিক্যাল স্টেট প্রিন্ট করে, যাতে ডিবাগিং সহজ হয়।
public class DebugExample {
public void debugTest() {
Integer a = 10;
Integer b = 0;
System.debug('Value of a: ' + a);
System.debug('Value of b: ' + b);
try {
Integer result = a / b;
} catch (Exception e) {
System.debug('Error: Division by zero');
}
}
}
Salesforce প্ল্যাটফর্মে Debug Logs ব্যবহার করে Session এবং Workflow ট্র্যাক করা যায়। Debug Logs Salesforce UI থেকে এনাবল করা যায়, যেখানে Apex Code, Workflow, Validation Rules, এবং SOQL Query Execution-সহ প্রায় সব কার্যক্রমের লগ দেখা যায়।
Developer Console Apex কোডের ত্রুটি ও কার্যক্রম অনুসন্ধানে সহায়ক। এটি Debug Logs বিশ্লেষণ, Query Editor, এবং Execution Log দেখার জন্য একটি কার্যকরী টুল।
Debug Levels দিয়ে Logging Level নির্ধারণ করা যায়, যেমন INFO, DEBUG, WARN, ERROR। এটি ডিবাগ লেভেল অনুযায়ী নির্দিষ্ট তথ্য দেখতে সহায়ক।
Checkpoint ব্যবহার করে কোডের নির্দিষ্ট স্থানে লগ বা ভেরিয়েবলের মান ট্র্যাক করা যায়। এটি Debug Logs-এ ভেরিয়েবল ও স্টেট পরীক্ষা করতে সহায়ক।
বিশ্লেষণমূলক Logging ব্যবহার: Exception Logging করতে হলে গুরুত্বপূর্ণ তথ্য যেমন Exception Message, Stack Trace, Timestamp লগ করা উচিত।
Debug Log সঠিক লেভেলে সেট করুন: Logging Level অতিরিক্তভাবে সেট করা উচিত নয়; শুধু প্রয়োজনীয় তথ্য দেখতে DEBUG
বা INFO
ব্যবহার করা ভালো।
Sensitive Data Logging এড়িয়ে চলুন: ব্যক্তিগত তথ্য বা সংবেদনশীল ডেটা Logging এড়িয়ে চলুন।
Custom Logging Database Limits মেনে চলুন: Custom Logging-এ অতিরিক্ত ডেটা ইনসার্ট না করা ভালো, কারণ Salesforce এর ডেটাবেজ গভর্নর লিমিট আছে।
Exception Logging এবং Debugging Techniques ব্যবহার করে Apex কোডে ত্রুটি পরিচালনা ও বিশ্লেষণ করা আরও কার্যকর ও সহজ হয়, যা প্রোগ্রামিং এর উন্নত মান নিশ্চিত করে।
Read more